package model

import java.util.Calendar

class EmpresaRegistrada(val _nombre: String,val _fuenteRecabadoraDeInformacion: FuenteRecabadoraDeInformacion,
						val _departamento: Departamento) extends Empresa with ManejoDeMontos{
  
  def nombre= _nombre

  override def esRegistrada()= true
  
  override def getRegistro(anho: Integer)=RegistroDAO.getRegistro(this,anho)
  
  def registros()= RegistroDAO.filtrarRegistrosPor({r => r.empresa.equals(this)})

  override def crearRegistro(delAnho: Integer,ventas: Float,ganancias: Float,enElAnho:Integer): Unit= {
      RegistroDAO.agregarRegistro(new RegistroConocido(this,ventas,ganancias,delAnho,enElAnho))
  }
 
  override def todosLosRegistros()= RegistroDAO.registrosConocidos(this)
  
  def todosLosRegistrosDelAnho(anho: Integer)=todosLosRegistros.filter(r=>r.anho==anho)
  
  def tasaDeGanancia(anho: Integer): Float= RegistroDAO.tasaDeGanancias(this, anho)
  
  def ==(empresa: EmpresaRegistrada)= nombre == empresa.nombre
  
  def esSolida(anho: Integer):Boolean= todosLosRegistrosDelAnho(anho).forall(r=> r.tasaDeGanancias > 10) 
	
  def esSospechosa(anho: Integer):Boolean= todosLosRegistrosDelAnho(anho).exists(r=> r.tasaDeGanancias > 85) 
  
}